package com.dynamixsoftware.printershare.smb;

import java.net.InetAddress;
import java.util.Enumeration;
import java.util.Vector;

final class SmbSession
{
  private static final String LOGON_SHARE = null;
  private UniAddress address;
  NtlmPasswordAuthentication auth;
  private int connectionState;
  long expiration;
  private InetAddress localAddr;
  private int localPort;
  private String netbiosName = null;
  private int port;
  SmbTransport transport = null;
  private Vector<SmbTree> trees;
  private int uid;
  
  SmbSession(UniAddress paramUniAddress, int paramInt1, InetAddress paramInetAddress, int paramInt2, NtlmPasswordAuthentication paramNtlmPasswordAuthentication)
  {
    this.address = paramUniAddress;
    this.port = paramInt1;
    this.localAddr = paramInetAddress;
    this.localPort = paramInt2;
    this.auth = paramNtlmPasswordAuthentication;
    this.trees = new Vector();
    this.connectionState = 0;
  }
  
  /* Error */
  private void sessionSetup(ServerMessageBlock paramServerMessageBlock1, ServerMessageBlock paramServerMessageBlock2)
    throws SmbException
  {
    // Byte code:
    //   0: aload_0
    //   1: invokevirtual 69	com/dynamixsoftware/printershare/smb/SmbSession:transport	()Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   4: astore_3
    //   5: aload_3
    //   6: monitorenter
    //   7: aconst_null
    //   8: astore 4
    //   10: aconst_null
    //   11: astore 5
    //   13: iconst_0
    //   14: newarray byte
    //   16: astore 6
    //   18: bipush 10
    //   20: istore 7
    //   22: aload_0
    //   23: getfield 54	com/dynamixsoftware/printershare/smb/SmbSession:connectionState	I
    //   26: ifeq +56 -> 82
    //   29: aload_0
    //   30: getfield 54	com/dynamixsoftware/printershare/smb/SmbSession:connectionState	I
    //   33: iconst_2
    //   34: if_icmpeq +11 -> 45
    //   37: aload_0
    //   38: getfield 54	com/dynamixsoftware/printershare/smb/SmbSession:connectionState	I
    //   41: iconst_3
    //   42: if_icmpne +6 -> 48
    //   45: aload_3
    //   46: monitorexit
    //   47: return
    //   48: aload_0
    //   49: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   52: invokevirtual 72	java/lang/Object:wait	()V
    //   55: goto -33 -> 22
    //   58: astore 27
    //   60: new 58	com/dynamixsoftware/printershare/smb/SmbException
    //   63: dup
    //   64: aload 27
    //   66: invokevirtual 76	java/lang/InterruptedException:getMessage	()Ljava/lang/String;
    //   69: aload 27
    //   71: invokespecial 79	com/dynamixsoftware/printershare/smb/SmbException:<init>	(Ljava/lang/String;Ljava/lang/Throwable;)V
    //   74: athrow
    //   75: astore 8
    //   77: aload_3
    //   78: monitorexit
    //   79: aload 8
    //   81: athrow
    //   82: aload_0
    //   83: iconst_1
    //   84: putfield 54	com/dynamixsoftware/printershare/smb/SmbSession:connectionState	I
    //   87: aload_0
    //   88: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   91: invokevirtual 84	com/dynamixsoftware/printershare/smb/SmbTransport:connect	()V
    //   94: aload_0
    //   95: iconst_0
    //   96: putfield 86	com/dynamixsoftware/printershare/smb/SmbSession:uid	I
    //   99: aload 4
    //   101: astore 11
    //   103: iload 7
    //   105: lookupswitch	default:+27->132, 10:+82->187, 20:+376->481
    //   133: nop
    //   134: astore 89
    //   136: new 88	java/lang/StringBuilder
    //   139: dup
    //   140: invokespecial 89	java/lang/StringBuilder:<init>	()V
    //   143: ldc 91
    //   145: invokevirtual 95	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   148: iload 7
    //   150: invokevirtual 98	java/lang/StringBuilder:append	(I)Ljava/lang/StringBuilder;
    //   153: invokevirtual 101	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   156: invokespecial 104	com/dynamixsoftware/printershare/smb/SmbException:<init>	(Ljava/lang/String;)V
    //   159: athrow
    //   160: astore 9
    //   162: aload_0
    //   163: iconst_1
    //   164: invokevirtual 108	com/dynamixsoftware/printershare/smb/SmbSession:logoff	(Z)V
    //   167: aload_0
    //   168: iconst_0
    //   169: putfield 54	com/dynamixsoftware/printershare/smb/SmbSession:connectionState	I
    //   172: aload 9
    //   174: athrow
    //   175: astore 10
    //   177: aload_0
    //   178: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   181: invokevirtual 111	java/lang/Object:notifyAll	()V
    //   184: aload 10
    //   186: athrow
    //   187: aload_0
    //   188: getfield 47	com/dynamixsoftware/printershare/smb/SmbSession:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   191: getstatic 116	com/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication:ANONYMOUS	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   194: if_acmpeq +42 -> 236
    //   197: aload_0
    //   198: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   201: ldc 117
    //   203: invokevirtual 121	com/dynamixsoftware/printershare/smb/SmbTransport:hasCapability	(I)Z
    //   206: istore 26
    //   208: iload 26
    //   210: ifeq +26 -> 236
    //   213: bipush 20
    //   215: istore 7
    //   217: aload 11
    //   219: astore 4
    //   221: iload 7
    //   223: ifne -124 -> 99
    //   226: aload_0
    //   227: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   230: invokevirtual 111	java/lang/Object:notifyAll	()V
    //   233: aload_3
    //   234: monitorexit
    //   235: return
    //   236: new 123	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndX
    //   239: dup
    //   240: aload_0
    //   241: aload_1
    //   242: aload_0
    //   243: getfield 47	com/dynamixsoftware/printershare/smb/SmbSession:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   246: invokespecial 126	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndX:<init>	(Lcom/dynamixsoftware/printershare/smb/SmbSession;Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;Ljava/lang/Object;)V
    //   249: astore 22
    //   251: new 128	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndXResponse
    //   254: dup
    //   255: aload_2
    //   256: invokespecial 131	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndXResponse:<init>	(Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;)V
    //   259: astore 23
    //   261: aload_0
    //   262: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   265: aload_0
    //   266: getfield 47	com/dynamixsoftware/printershare/smb/SmbSession:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   269: invokevirtual 135	com/dynamixsoftware/printershare/smb/SmbTransport:isSignatureSetupRequired	(Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;)Z
    //   272: ifeq +43 -> 315
    //   275: aload_0
    //   276: getfield 47	com/dynamixsoftware/printershare/smb/SmbSession:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   279: getfield 139	com/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication:hashesExternal	Z
    //   282: ifeq +109 -> 391
    //   285: getstatic 142	com/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication:DEFAULT_PASSWORD	Ljava/lang/String;
    //   288: ldc 144
    //   290: if_acmpeq +101 -> 391
    //   293: aload_0
    //   294: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   297: getstatic 147	com/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication:DEFAULT	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   300: invokevirtual 151	com/dynamixsoftware/printershare/smb/SmbTransport:getSmbSession	(Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;)Lcom/dynamixsoftware/printershare/smb/SmbSession;
    //   303: getstatic 29	com/dynamixsoftware/printershare/smb/SmbSession:LOGON_SHARE	Ljava/lang/String;
    //   306: aconst_null
    //   307: invokevirtual 155	com/dynamixsoftware/printershare/smb/SmbSession:getSmbTree	(Ljava/lang/String;Ljava/lang/String;)Lcom/dynamixsoftware/printershare/smb/SmbTree;
    //   310: aconst_null
    //   311: aconst_null
    //   312: invokevirtual 160	com/dynamixsoftware/printershare/smb/SmbTree:treeConnect	(Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;)V
    //   315: aload 22
    //   317: aload_0
    //   318: getfield 47	com/dynamixsoftware/printershare/smb/SmbSession:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   321: putfield 161	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndX:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   324: aload_0
    //   325: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   328: aload 22
    //   330: aload 23
    //   332: invokevirtual 164	com/dynamixsoftware/printershare/smb/SmbTransport:send	(Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;)V
    //   335: aload 23
    //   337: getfield 167	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndXResponse:isLoggedInAsGuest	Z
    //   340: ifeq +89 -> 429
    //   343: ldc 169
    //   345: aload_0
    //   346: getfield 47	com/dynamixsoftware/printershare/smb/SmbSession:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   349: getfield 172	com/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication:username	Ljava/lang/String;
    //   352: invokevirtual 178	java/lang/String:equalsIgnoreCase	(Ljava/lang/String;)Z
    //   355: ifne +74 -> 429
    //   358: aload_0
    //   359: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   362: getfield 182	com/dynamixsoftware/printershare/smb/SmbTransport:server	Lcom/dynamixsoftware/printershare/smb/SmbTransport$ServerData;
    //   365: getfield 187	com/dynamixsoftware/printershare/smb/SmbTransport$ServerData:security	I
    //   368: ifeq +61 -> 429
    //   371: aload_0
    //   372: getfield 47	com/dynamixsoftware/printershare/smb/SmbSession:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   375: getstatic 116	com/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication:ANONYMOUS	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   378: if_acmpeq +51 -> 429
    //   381: new 62	com/dynamixsoftware/printershare/smb/SmbAuthException
    //   384: dup
    //   385: ldc 188
    //   387: invokespecial 191	com/dynamixsoftware/printershare/smb/SmbAuthException:<init>	(I)V
    //   390: athrow
    //   391: aload 22
    //   393: new 193	com/dynamixsoftware/printershare/smb/SigningDigest
    //   396: dup
    //   397: aload_0
    //   398: getfield 47	com/dynamixsoftware/printershare/smb/SmbSession:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   401: aload_0
    //   402: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   405: getfield 182	com/dynamixsoftware/printershare/smb/SmbTransport:server	Lcom/dynamixsoftware/printershare/smb/SmbTransport$ServerData;
    //   408: getfield 197	com/dynamixsoftware/printershare/smb/SmbTransport$ServerData:encryptionKey	[B
    //   411: invokevirtual 201	com/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication:getSigningKey	([B)[B
    //   414: iconst_0
    //   415: invokespecial 204	com/dynamixsoftware/printershare/smb/SigningDigest:<init>	([BZ)V
    //   418: putfield 208	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndX:digest	Lcom/dynamixsoftware/printershare/smb/SigningDigest;
    //   421: goto -106 -> 315
    //   424: astore 25
    //   426: aload 25
    //   428: athrow
    //   429: aload 5
    //   431: ifnull +6 -> 437
    //   434: aload 5
    //   436: athrow
    //   437: aload_0
    //   438: aload 23
    //   440: getfield 209	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndXResponse:uid	I
    //   443: putfield 86	com/dynamixsoftware/printershare/smb/SmbSession:uid	I
    //   446: aload 22
    //   448: getfield 208	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndX:digest	Lcom/dynamixsoftware/printershare/smb/SigningDigest;
    //   451: ifnull +15 -> 466
    //   454: aload_0
    //   455: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   458: aload 22
    //   460: getfield 208	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndX:digest	Lcom/dynamixsoftware/printershare/smb/SigningDigest;
    //   463: putfield 210	com/dynamixsoftware/printershare/smb/SmbTransport:digest	Lcom/dynamixsoftware/printershare/smb/SigningDigest;
    //   466: aload_0
    //   467: iconst_2
    //   468: putfield 54	com/dynamixsoftware/printershare/smb/SmbSession:connectionState	I
    //   471: aload 11
    //   473: astore 4
    //   475: iconst_0
    //   476: istore 7
    //   478: goto -257 -> 221
    //   481: aload 11
    //   483: ifnonnull +313 -> 796
    //   486: iconst_4
    //   487: aload_0
    //   488: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   491: getfield 213	com/dynamixsoftware/printershare/smb/SmbTransport:flags2	I
    //   494: iand
    //   495: ifeq +49 -> 544
    //   498: iconst_1
    //   499: istore 12
    //   501: new 215	com/dynamixsoftware/printershare/smb/NtlmContext
    //   504: dup
    //   505: aload_0
    //   506: getfield 47	com/dynamixsoftware/printershare/smb/SmbSession:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   509: iload 12
    //   511: invokespecial 218	com/dynamixsoftware/printershare/smb/NtlmContext:<init>	(Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;Z)V
    //   514: astore 4
    //   516: aload 4
    //   518: invokevirtual 222	com/dynamixsoftware/printershare/smb/NtlmContext:isEstablished	()Z
    //   521: ifeq +29 -> 550
    //   524: aload_0
    //   525: aload 4
    //   527: invokevirtual 225	com/dynamixsoftware/printershare/smb/NtlmContext:getNetbiosName	()Ljava/lang/String;
    //   530: putfield 37	com/dynamixsoftware/printershare/smb/SmbSession:netbiosName	Ljava/lang/String;
    //   533: aload_0
    //   534: iconst_2
    //   535: putfield 54	com/dynamixsoftware/printershare/smb/SmbSession:connectionState	I
    //   538: iconst_0
    //   539: istore 7
    //   541: goto -320 -> 221
    //   544: iconst_0
    //   545: istore 12
    //   547: goto -46 -> 501
    //   550: aload 4
    //   552: aload 6
    //   554: iconst_0
    //   555: aload 6
    //   557: arraylength
    //   558: invokevirtual 229	com/dynamixsoftware/printershare/smb/NtlmContext:initSecContext	([BII)[B
    //   561: astore 15
    //   563: aload 15
    //   565: astore 6
    //   567: aload 6
    //   569: ifnull -348 -> 221
    //   572: new 123	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndX
    //   575: dup
    //   576: aload_0
    //   577: aconst_null
    //   578: aload 6
    //   580: invokespecial 126	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndX:<init>	(Lcom/dynamixsoftware/printershare/smb/SmbSession;Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;Ljava/lang/Object;)V
    //   583: astore 16
    //   585: new 128	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndXResponse
    //   588: dup
    //   589: aconst_null
    //   590: invokespecial 131	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndXResponse:<init>	(Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;)V
    //   593: astore 17
    //   595: aload_0
    //   596: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   599: aload_0
    //   600: getfield 47	com/dynamixsoftware/printershare/smb/SmbSession:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   603: invokevirtual 135	com/dynamixsoftware/printershare/smb/SmbTransport:isSignatureSetupRequired	(Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;)Z
    //   606: ifeq +30 -> 636
    //   609: aload 4
    //   611: invokevirtual 232	com/dynamixsoftware/printershare/smb/NtlmContext:getSigningKey	()[B
    //   614: astore 21
    //   616: aload 21
    //   618: ifnull +18 -> 636
    //   621: aload 16
    //   623: new 193	com/dynamixsoftware/printershare/smb/SigningDigest
    //   626: dup
    //   627: aload 21
    //   629: iconst_1
    //   630: invokespecial 204	com/dynamixsoftware/printershare/smb/SigningDigest:<init>	([BZ)V
    //   633: putfield 208	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndX:digest	Lcom/dynamixsoftware/printershare/smb/SigningDigest;
    //   636: aload 16
    //   638: aload_0
    //   639: getfield 86	com/dynamixsoftware/printershare/smb/SmbSession:uid	I
    //   642: putfield 233	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndX:uid	I
    //   645: aload_0
    //   646: iconst_0
    //   647: putfield 86	com/dynamixsoftware/printershare/smb/SmbSession:uid	I
    //   650: aload_0
    //   651: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   654: aload 16
    //   656: aload 17
    //   658: invokevirtual 164	com/dynamixsoftware/printershare/smb/SmbTransport:send	(Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;)V
    //   661: aload 17
    //   663: getfield 167	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndXResponse:isLoggedInAsGuest	Z
    //   666: ifeq +78 -> 744
    //   669: ldc 169
    //   671: aload_0
    //   672: getfield 47	com/dynamixsoftware/printershare/smb/SmbSession:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   675: getfield 172	com/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication:username	Ljava/lang/String;
    //   678: invokevirtual 178	java/lang/String:equalsIgnoreCase	(Ljava/lang/String;)Z
    //   681: ifne +63 -> 744
    //   684: new 62	com/dynamixsoftware/printershare/smb/SmbAuthException
    //   687: dup
    //   688: ldc 188
    //   690: invokespecial 191	com/dynamixsoftware/printershare/smb/SmbAuthException:<init>	(I)V
    //   693: athrow
    //   694: astore 9
    //   696: goto -534 -> 162
    //   699: astore 13
    //   701: aload_0
    //   702: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   705: iconst_1
    //   706: invokevirtual 236	com/dynamixsoftware/printershare/smb/SmbTransport:disconnect	(Z)V
    //   709: aload_0
    //   710: iconst_0
    //   711: putfield 86	com/dynamixsoftware/printershare/smb/SmbSession:uid	I
    //   714: aload 13
    //   716: athrow
    //   717: astore 20
    //   719: aload 20
    //   721: athrow
    //   722: astore 18
    //   724: aload 18
    //   726: astore 5
    //   728: aload_0
    //   729: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   732: iconst_1
    //   733: invokevirtual 236	com/dynamixsoftware/printershare/smb/SmbTransport:disconnect	(Z)V
    //   736: goto -75 -> 661
    //   739: astore 19
    //   741: goto -80 -> 661
    //   744: aload 5
    //   746: ifnull +6 -> 752
    //   749: aload 5
    //   751: athrow
    //   752: aload_0
    //   753: aload 17
    //   755: getfield 209	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndXResponse:uid	I
    //   758: putfield 86	com/dynamixsoftware/printershare/smb/SmbSession:uid	I
    //   761: aload 16
    //   763: getfield 208	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndX:digest	Lcom/dynamixsoftware/printershare/smb/SigningDigest;
    //   766: ifnull +15 -> 781
    //   769: aload_0
    //   770: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   773: aload 16
    //   775: getfield 208	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndX:digest	Lcom/dynamixsoftware/printershare/smb/SigningDigest;
    //   778: putfield 210	com/dynamixsoftware/printershare/smb/SmbTransport:digest	Lcom/dynamixsoftware/printershare/smb/SigningDigest;
    //   781: aload 17
    //   783: getfield 239	com/dynamixsoftware/printershare/smb/SmbComSessionSetupAndXResponse:blob	[B
    //   786: astore 6
    //   788: goto -567 -> 221
    //   791: astore 14
    //   793: goto -84 -> 709
    //   796: aload 11
    //   798: astore 4
    //   800: goto -284 -> 516
    //   803: astore 10
    //   805: goto -628 -> 177
    //   808: astore 24
    //   810: aload 24
    //   812: astore 5
    //   814: goto -479 -> 335
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	817	0	this	SmbSession
    //   0	817	1	paramServerMessageBlock1	ServerMessageBlock
    //   0	817	2	paramServerMessageBlock2	ServerMessageBlock
    //   4	230	3	localSmbTransport	SmbTransport
    //   8	791	4	localObject1	Object
    //   11	802	5	localObject2	Object
    //   16	771	6	localObject3	Object
    //   20	520	7	i	int
    //   75	5	8	localObject4	Object
    //   160	13	9	localSmbException1	SmbException
    //   694	1	9	localSmbException2	SmbException
    //   175	10	10	localObject5	Object
    //   803	1	10	localObject6	Object
    //   101	696	11	localObject7	Object
    //   499	47	12	bool1	boolean
    //   699	16	13	localSmbException3	SmbException
    //   791	1	14	localIOException	java.io.IOException
    //   561	3	15	arrayOfByte1	byte[]
    //   583	191	16	localSmbComSessionSetupAndX1	SmbComSessionSetupAndX
    //   593	189	17	localSmbComSessionSetupAndXResponse1	SmbComSessionSetupAndXResponse
    //   722	3	18	localSmbException4	SmbException
    //   739	1	19	localException	java.lang.Exception
    //   717	3	20	localSmbAuthException1	SmbAuthException
    //   614	14	21	arrayOfByte2	byte[]
    //   249	210	22	localSmbComSessionSetupAndX2	SmbComSessionSetupAndX
    //   259	180	23	localSmbComSessionSetupAndXResponse2	SmbComSessionSetupAndXResponse
    //   808	3	24	localSmbException5	SmbException
    //   424	3	25	localSmbAuthException2	SmbAuthException
    //   206	3	26	bool2	boolean
    //   58	12	27	localInterruptedException	java.lang.InterruptedException
    // Exception table:
    //   from	to	target	type
    //   48	55	58	java/lang/InterruptedException
    //   13	18	75	finally
    //   22	45	75	finally
    //   45	47	75	finally
    //   48	55	75	finally
    //   60	75	75	finally
    //   77	79	75	finally
    //   82	87	75	finally
    //   177	187	75	finally
    //   226	235	75	finally
    //   132	160	160	com/dynamixsoftware/printershare/smb/SmbException
    //   187	208	160	com/dynamixsoftware/printershare/smb/SmbException
    //   236	315	160	com/dynamixsoftware/printershare/smb/SmbException
    //   315	324	160	com/dynamixsoftware/printershare/smb/SmbException
    //   335	391	160	com/dynamixsoftware/printershare/smb/SmbException
    //   391	421	160	com/dynamixsoftware/printershare/smb/SmbException
    //   426	429	160	com/dynamixsoftware/printershare/smb/SmbException
    //   434	437	160	com/dynamixsoftware/printershare/smb/SmbException
    //   437	466	160	com/dynamixsoftware/printershare/smb/SmbException
    //   466	471	160	com/dynamixsoftware/printershare/smb/SmbException
    //   486	498	160	com/dynamixsoftware/printershare/smb/SmbException
    //   501	516	160	com/dynamixsoftware/printershare/smb/SmbException
    //   87	99	175	finally
    //   162	175	175	finally
    //   516	538	175	finally
    //   550	563	175	finally
    //   572	616	175	finally
    //   621	636	175	finally
    //   636	650	175	finally
    //   650	661	175	finally
    //   661	694	175	finally
    //   701	709	175	finally
    //   709	717	175	finally
    //   719	722	175	finally
    //   728	736	175	finally
    //   749	752	175	finally
    //   752	781	175	finally
    //   781	788	175	finally
    //   324	335	424	com/dynamixsoftware/printershare/smb/SmbAuthException
    //   87	99	694	com/dynamixsoftware/printershare/smb/SmbException
    //   516	538	694	com/dynamixsoftware/printershare/smb/SmbException
    //   572	616	694	com/dynamixsoftware/printershare/smb/SmbException
    //   621	636	694	com/dynamixsoftware/printershare/smb/SmbException
    //   636	650	694	com/dynamixsoftware/printershare/smb/SmbException
    //   661	694	694	com/dynamixsoftware/printershare/smb/SmbException
    //   701	709	694	com/dynamixsoftware/printershare/smb/SmbException
    //   709	717	694	com/dynamixsoftware/printershare/smb/SmbException
    //   719	722	694	com/dynamixsoftware/printershare/smb/SmbException
    //   728	736	694	com/dynamixsoftware/printershare/smb/SmbException
    //   749	752	694	com/dynamixsoftware/printershare/smb/SmbException
    //   752	781	694	com/dynamixsoftware/printershare/smb/SmbException
    //   781	788	694	com/dynamixsoftware/printershare/smb/SmbException
    //   550	563	699	com/dynamixsoftware/printershare/smb/SmbException
    //   650	661	717	com/dynamixsoftware/printershare/smb/SmbAuthException
    //   650	661	722	com/dynamixsoftware/printershare/smb/SmbException
    //   728	736	739	java/lang/Exception
    //   701	709	791	java/io/IOException
    //   132	160	803	finally
    //   187	208	803	finally
    //   236	315	803	finally
    //   315	324	803	finally
    //   324	335	803	finally
    //   335	391	803	finally
    //   391	421	803	finally
    //   426	429	803	finally
    //   434	437	803	finally
    //   437	466	803	finally
    //   466	471	803	finally
    //   486	498	803	finally
    //   501	516	803	finally
    //   324	335	808	com/dynamixsoftware/printershare/smb/SmbException
  }
  
  /* Error */
  SmbTree getSmbTree(String paramString1, String paramString2)
  {
    // Byte code:
    //   0: aload_0
    //   1: monitorenter
    //   2: aload_1
    //   3: ifnonnull +6 -> 9
    //   6: ldc 241
    //   8: astore_1
    //   9: aload_0
    //   10: getfield 52	com/dynamixsoftware/printershare/smb/SmbSession:trees	Ljava/util/Vector;
    //   13: invokevirtual 245	java/util/Vector:elements	()Ljava/util/Enumeration;
    //   16: astore 4
    //   18: aload 4
    //   20: invokeinterface 250 1 0
    //   25: ifeq +38 -> 63
    //   28: aload 4
    //   30: invokeinterface 254 1 0
    //   35: checkcast 157	com/dynamixsoftware/printershare/smb/SmbTree
    //   38: astore 7
    //   40: aload 7
    //   42: aload_1
    //   43: aload_2
    //   44: invokevirtual 258	com/dynamixsoftware/printershare/smb/SmbTree:matches	(Ljava/lang/String;Ljava/lang/String;)Z
    //   47: istore 8
    //   49: iload 8
    //   51: ifeq -33 -> 18
    //   54: aload 7
    //   56: astore 6
    //   58: aload_0
    //   59: monitorexit
    //   60: aload 6
    //   62: areturn
    //   63: new 157	com/dynamixsoftware/printershare/smb/SmbTree
    //   66: dup
    //   67: aload_0
    //   68: aload_1
    //   69: aload_2
    //   70: invokespecial 261	com/dynamixsoftware/printershare/smb/SmbTree:<init>	(Lcom/dynamixsoftware/printershare/smb/SmbSession;Ljava/lang/String;Ljava/lang/String;)V
    //   73: astore 5
    //   75: aload_0
    //   76: getfield 52	com/dynamixsoftware/printershare/smb/SmbSession:trees	Ljava/util/Vector;
    //   79: aload 5
    //   81: invokevirtual 265	java/util/Vector:addElement	(Ljava/lang/Object;)V
    //   84: aload 5
    //   86: astore 6
    //   88: goto -30 -> 58
    //   91: astore_3
    //   92: aload_0
    //   93: monitorexit
    //   94: aload_3
    //   95: athrow
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	96	0	this	SmbSession
    //   0	96	1	paramString1	String
    //   0	96	2	paramString2	String
    //   91	4	3	localObject1	Object
    //   16	13	4	localEnumeration	Enumeration
    //   73	12	5	localSmbTree1	SmbTree
    //   56	31	6	localObject2	Object
    //   38	17	7	localSmbTree2	SmbTree
    //   47	3	8	bool	boolean
    // Exception table:
    //   from	to	target	type
    //   9	18	91	finally
    //   18	49	91	finally
    //   63	84	91	finally
  }
  
  void logoff(boolean paramBoolean)
  {
    synchronized (transport())
    {
      if (this.connectionState != 2) {
        return;
      }
      this.connectionState = 3;
      this.netbiosName = null;
      Enumeration localEnumeration = this.trees.elements();
      if (localEnumeration.hasMoreElements()) {
        ((SmbTree)localEnumeration.nextElement()).treeDisconnect(paramBoolean);
      }
    }
    SmbComLogoffAndX localSmbComLogoffAndX;
    if ((!paramBoolean) && (this.transport.server.security != 0))
    {
      localSmbComLogoffAndX = new SmbComLogoffAndX(null);
      localSmbComLogoffAndX.uid = this.uid;
    }
    try
    {
      this.transport.send(localSmbComLogoffAndX, null);
      label115:
      this.uid = 0;
      this.connectionState = 0;
      this.transport.notifyAll();
      return;
    }
    catch (SmbException localSmbException)
    {
      break label115;
    }
  }
  
  boolean matches(NtlmPasswordAuthentication paramNtlmPasswordAuthentication)
  {
    return (this.auth == paramNtlmPasswordAuthentication) || (this.auth.equals(paramNtlmPasswordAuthentication));
  }
  
  /* Error */
  void send(ServerMessageBlock paramServerMessageBlock1, ServerMessageBlock paramServerMessageBlock2)
    throws SmbException
  {
    // Byte code:
    //   0: aload_0
    //   1: invokevirtual 69	com/dynamixsoftware/printershare/smb/SmbSession:transport	()Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   4: astore_3
    //   5: aload_3
    //   6: monitorenter
    //   7: aload_2
    //   8: ifnull +8 -> 16
    //   11: aload_2
    //   12: iconst_0
    //   13: putfield 281	com/dynamixsoftware/printershare/smb/ServerMessageBlock:received	Z
    //   16: aload_0
    //   17: ldc2_w 282
    //   20: invokestatic 289	java/lang/System:currentTimeMillis	()J
    //   23: ladd
    //   24: putfield 291	com/dynamixsoftware/printershare/smb/SmbSession:expiration	J
    //   27: aload_0
    //   28: aload_1
    //   29: aload_2
    //   30: invokespecial 293	com/dynamixsoftware/printershare/smb/SmbSession:sessionSetup	(Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;)V
    //   33: aload_2
    //   34: ifnull +13 -> 47
    //   37: aload_2
    //   38: getfield 281	com/dynamixsoftware/printershare/smb/ServerMessageBlock:received	Z
    //   41: ifeq +6 -> 47
    //   44: aload_3
    //   45: monitorexit
    //   46: return
    //   47: aload_1
    //   48: instanceof 295
    //   51: ifeq +64 -> 115
    //   54: aload_1
    //   55: checkcast 295	com/dynamixsoftware/printershare/smb/SmbComTreeConnectAndX
    //   58: astore 6
    //   60: aload_0
    //   61: getfield 37	com/dynamixsoftware/printershare/smb/SmbSession:netbiosName	Ljava/lang/String;
    //   64: ifnull +51 -> 115
    //   67: aload 6
    //   69: getfield 298	com/dynamixsoftware/printershare/smb/SmbComTreeConnectAndX:path	Ljava/lang/String;
    //   72: ldc_w 300
    //   75: invokevirtual 303	java/lang/String:endsWith	(Ljava/lang/String;)Z
    //   78: ifeq +37 -> 115
    //   81: aload 6
    //   83: new 88	java/lang/StringBuilder
    //   86: dup
    //   87: invokespecial 89	java/lang/StringBuilder:<init>	()V
    //   90: ldc_w 305
    //   93: invokevirtual 95	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   96: aload_0
    //   97: getfield 37	com/dynamixsoftware/printershare/smb/SmbSession:netbiosName	Ljava/lang/String;
    //   100: invokevirtual 95	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   103: ldc_w 300
    //   106: invokevirtual 95	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   109: invokevirtual 101	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   112: putfield 298	com/dynamixsoftware/printershare/smb/SmbComTreeConnectAndX:path	Ljava/lang/String;
    //   115: aload_1
    //   116: aload_0
    //   117: getfield 86	com/dynamixsoftware/printershare/smb/SmbSession:uid	I
    //   120: putfield 306	com/dynamixsoftware/printershare/smb/ServerMessageBlock:uid	I
    //   123: aload_1
    //   124: aload_0
    //   125: getfield 47	com/dynamixsoftware/printershare/smb/SmbSession:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   128: putfield 307	com/dynamixsoftware/printershare/smb/ServerMessageBlock:auth	Lcom/dynamixsoftware/printershare/smb/NtlmPasswordAuthentication;
    //   131: aload_0
    //   132: getfield 35	com/dynamixsoftware/printershare/smb/SmbSession:transport	Lcom/dynamixsoftware/printershare/smb/SmbTransport;
    //   135: aload_1
    //   136: aload_2
    //   137: invokevirtual 164	com/dynamixsoftware/printershare/smb/SmbTransport:send	(Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;Lcom/dynamixsoftware/printershare/smb/ServerMessageBlock;)V
    //   140: aload_3
    //   141: monitorexit
    //   142: return
    //   143: astore 4
    //   145: aload_3
    //   146: monitorexit
    //   147: aload 4
    //   149: athrow
    //   150: astore 5
    //   152: aload_1
    //   153: instanceof 295
    //   156: ifeq +8 -> 164
    //   159: aload_0
    //   160: iconst_1
    //   161: invokevirtual 108	com/dynamixsoftware/printershare/smb/SmbSession:logoff	(Z)V
    //   164: aload_1
    //   165: aconst_null
    //   166: putfield 308	com/dynamixsoftware/printershare/smb/ServerMessageBlock:digest	Lcom/dynamixsoftware/printershare/smb/SigningDigest;
    //   169: aload 5
    //   171: athrow
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	172	0	this	SmbSession
    //   0	172	1	paramServerMessageBlock1	ServerMessageBlock
    //   0	172	2	paramServerMessageBlock2	ServerMessageBlock
    //   4	142	3	localSmbTransport	SmbTransport
    //   143	5	4	localObject	Object
    //   150	20	5	localSmbException	SmbException
    //   58	24	6	localSmbComTreeConnectAndX	SmbComTreeConnectAndX
    // Exception table:
    //   from	to	target	type
    //   11	16	143	finally
    //   16	33	143	finally
    //   37	46	143	finally
    //   47	115	143	finally
    //   115	131	143	finally
    //   131	140	143	finally
    //   140	142	143	finally
    //   145	147	143	finally
    //   152	164	143	finally
    //   164	172	143	finally
    //   131	140	150	com/dynamixsoftware/printershare/smb/SmbException
  }
  
  public String toString()
  {
    return "SmbSession[accountName=" + this.auth.username + ",primaryDomain=" + this.auth.domain + ",uid=" + this.uid + ",connectionState=" + this.connectionState + "]";
  }
  
  SmbTransport transport()
  {
    try
    {
      if (this.transport == null) {
        this.transport = SmbTransport.getSmbTransport(this.address, this.port, this.localAddr, this.localPort, null);
      }
      SmbTransport localSmbTransport = this.transport;
      return localSmbTransport;
    }
    finally {}
  }
}


/* Location:           C:\Users\Admin\Desktop\Decompiler\JAD\jd-gui-0.3.6.windows\classes_dex2jar.jar
 * Qualified Name:     com.dynamixsoftware.printershare.smb.SmbSession
 * JD-Core Version:    0.7.0.1
 */